package com.iamteer.day20;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
IO 流分类：
	按数据的流向：
		输入流：
		输出流：
		
	按处理的单位：
		字节流：字节流读取到的都是文件的二进制数据
		字符流：读取数据是以字符为单位（读取到的也是二进制数据，转成也字符）
			字符流 = 字节流 + 解码
			
输入字节流：
--------| InputStream	所有输入字节流的基类（抽象类）
------------| FileInputStream	读取文件数据的输入字节流

输出字节流
--------| OutputStream	所有输出字节流的基类（抽象类）
------------| FileOutputStream	输出文件数据的输出字节流


 */
public class OutputStream {

	public static void main(String[] args) throws IOException {
//		writeTest1();
		writeTest2();
	}
	
	public static void writeTest1() throws IOException {
		//1. 找到目标文件
		File file = new File("test.txt");
		//2. 建立数据的输出通道
		FileOutputStream fileOutputStream = new FileOutputStream(file);
		//3. 写出文件数据：每次只写出一个数据！会把 int 截断成 byte
		fileOutputStream.write('A');
		//4. 关闭文件资源
		fileOutputStream.close();
	}

	public static void writeTest2() throws IOException {
		//1. 找到目标文件
		File file = new File("test.txt");
		//2. 建立数据输出通道：如果目标文件存在，则会清空文件内容！
//		FileOutputStream fileOutputStream = new FileOutputStream(file);
		//2. 建立数据输出通道：如果目标文件存在，则会在文件末尾追加内容！
		FileOutputStream fileOutputStream = new FileOutputStream(file, true);
		//3. 写出文件数据
		String data = "hello world!";
		fileOutputStream.write(data.getBytes());
		//4. 关闭文件资源
		fileOutputStream.close();
	}
}
